package com.heima.freemarker.text;

import com.heima.freemarker.FreemarkerDemotApplication;
import com.heima.freemarker.entity.Student;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.junit.Test;
import org.junit.runner.RunWith;
import freemarker.template.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.*;

@SpringBootTest(classes = FreemarkerDemotApplication.class)
@RunWith(SpringRunner.class)
public class FreemarkerTest {

    @Autowired
    private Configuration configuration;
    @Test
    public void test() throws IOException, TemplateException {
//        freemarker的模板对象  获取模板
        Template template = configuration.getTemplate("02-list.ftl");
//        获取数据模型
        Map params =getData();
//        将数据和模板合到一起  第一个参数是数据模型  第二个参数是输出流
        template.process(params, new FileWriter("d:/freemarker/list.html"));

    }

//    数据
    private Map getData() {
        Map<String, Object> map = new HashMap<>();
        //小强对象模型数据
        Student stu1 = new Student();
        stu1.setName("小强");
        stu1.setAge(18);
        stu1.setMoney(1000.86f);
        stu1.setBirthday(new Date());

        //小红对象模型数据
        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setMoney(200.1f);
        stu2.setAge(19);

//        将两个数据模型放到集合中
        List<Student> stus = new ArrayList<>();
        stus.add(stu1);
        stus.add(stu2);
//        将集合放到map中
        map.put("stus",stus);
//        创建map数据
        HashMap<String, Student> stuMap = new HashMap<>();
        stuMap.put("stu1", stu1);
        stuMap.put("stu2", stu2);
//       向map数据中放入map
        map.put("stumap",stuMap);
        return map;
    }
}
